Java Technologies PreparedStatement Example: Query Execution এর জন্য PreparedStatement ব্যবহার গাইড ও নোট

376

PreparedStatement হল JDBC (Java Database Connectivity) API-র একটি ক্লাস যা SQL ইনজেকশন থেকে রক্ষা পাওয়ার জন্য এবং ডেটাবেসে ডাইনামিক কুয়েরি এক্সিকিউট করার জন্য ব্যবহৃত হয়। এটি Statement ইন্টারফেসের একটি উন্নত সংস্করণ, যা SQL কুয়েরি তৈরি এবং এক্সিকিউট করার জন্য ব্যবহৃত হয়। PreparedStatement ব্যবহারের মাধ্যমে SQL কুয়েরি গুলি পুনঃব্যবহারযোগ্য এবং নিরাপদ হয়।

উদাহরণ: PreparedStatement ব্যবহার করে একটি SQL কুয়েরি এক্সিকিউট করা

এই উদাহরণে, আমরা একটি ডাটাবেসে কনেকশন স্থাপন করব, একটি PreparedStatement ব্যবহার করে ডাটাবেসে একটি ইনসার্ট কুয়েরি এক্সিকিউট করব।

ধাপ ১: MySQL ডাটাবেসে কনফিগারেশন তৈরি

প্রথমে, নিশ্চিত হন যে আপনার ডাটাবেস এবং টেবিল প্রস্তুত আছে। ধরুন আমরা একটি Employee টেবিল ব্যবহার করব, যার মধ্যে তিনটি কলাম আছে: id, name, এবং salary

CREATE TABLE Employee (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    salary DECIMAL(10, 2)
);

ধাপ ২: Java কোড উদাহরণ

এখন, নিচের জাভা কোডটি দেখুন যা PreparedStatement ব্যবহার করে ডাটাবেসে ডাটা ইনসার্ট করবে।

import java.sql.*;

public class PreparedStatementExample {
    public static void main(String[] args) {
        // ডাটাবেস কনফিগারেশন
        String url = "jdbc:mysql://localhost:3306/your_database_name"; // আপনার ডাটাবেস URL
        String user = "root"; // ডাটাবেস ইউজার
        String password = "password"; // ডাটাবেস পাসওয়ার্ড

        // SQL কুয়েরি
        String sql = "INSERT INTO Employee (id, name, salary) VALUES (?, ?, ?)";

        // কনেকশন এবং PreparedStatement ডিক্লেয়ারেশন
        try (Connection conn = DriverManager.getConnection(url, user, password);
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
            
            // প্রথম প্রিপেয়ারড স্টেটমেন্টের জন্য প্যারামিটার সেট করা
            pstmt.setInt(1, 101); // id
            pstmt.setString(2, "John Doe"); // name
            pstmt.setBigDecimal(3, new BigDecimal("50000.00")); // salary
            
            // ইনসার্ট কুয়েরি এক্সিকিউট করা
            int rowsAffected = pstmt.executeUpdate();
            
            System.out.println("Rows affected: " + rowsAffected);
            
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

কোডের ব্যাখ্যা:

  1. ডাটাবেস কনফিগারেশন:
    • url: ডাটাবেসের URL, যেখানে localhost:3306 হলো MySQL সার্ভারের লোকাল হোস্ট এবং your_database_name হলো আপনার ডাটাবেসের নাম।
    • user এবং password: আপনার ডাটাবেসের ইউজারনেম এবং পাসওয়ার্ড।
  2. SQL কুয়েরি:
    • "INSERT INTO Employee (id, name, salary) VALUES (?, ?, ?)": এখানে ? হল প্লেসহোল্ডার যা পরবর্তীতে ডাইনামিকভাবে পূর্ণ করা হবে।
  3. PreparedStatement:
    • conn.prepareStatement(sql)-এ sql প্যারামিটার হিসেবে কুয়েরি পাঠানো হয়।
    • pstmt.setInt(1, 101) - প্রথম ? প্লেসহোল্ডারকে ইনপুট দেওয়া হচ্ছে। এখানে 1 হল প্লেসহোল্ডারের অবস্থান (প্রথমটি, দ্বিতীয়টি, তৃতীয়টি ইত্যাদি) এবং 101 হলো তার মান (id)।
    • pstmt.setString(2, "John Doe") - দ্বিতীয় প্লেসহোল্ডার name পূর্ণ করা হচ্ছে।
    • pstmt.setBigDecimal(3, new BigDecimal("50000.00")) - তৃতীয় প্লেসহোল্ডার salary পূর্ণ করা হচ্ছে।
  4. Query Execution:
    • pstmt.executeUpdate() মেথডটি SQL কুয়েরি এক্সিকিউট করে এবং যে সংখ্যক সারি প্রভাবিত হয়েছে তা ফিরিয়ে দেয়।
  5. Exception Handling:
    • SQLException হ্যান্ডলিংয়ের মাধ্যমে ডাটাবেস সম্পর্কিত যে কোনো সমস্যা ধরতে পারেন।

Advantages of PreparedStatement:

  1. SQL Injection Protection: SQL ইনজেকশন আক্রমণের হাত থেকে রক্ষা করে, কারণ ব্যবহারকারীর ইনপুট কুয়েরিতে সরাসরি যুক্ত করা হয় না।
  2. Performance: একটি কুয়েরি একবার কম্পাইল হয়ে গেলে, পরবর্তী এক্সিকিউশনের জন্য এটি পুনঃব্যবহার করা যেতে পারে, ফলে কর্মক্ষমতা বৃদ্ধি পায়।
  3. Code Readability: ডাইনামিকভাবে প্যারামিটার যুক্ত করা সহজ হয়, ফলে কোড আরও পরিষ্কার এবং রক্ষণাবেক্ষণ সহজ হয়।

এই উদাহরণটি দেখায় কিভাবে PreparedStatement ব্যবহার করে ডাটাবেসে ডাটা ইনসার্ট করা যায়। PreparedStatement হল JDBC API-র একটি শক্তিশালী এবং নিরাপদ উপায় যা SQL কুয়েরি এক্সিকিউশনের জন্য ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...